package com.whut.mall.util;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.whut.mall.common.Constant;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;

/**
 * @author xh
 * @date 2022/5/16 15:30
 * 生成二维码工具
 */
public class QRCodeGenerator {

    //设成静态方法，方便外面轻松调用

    /**
     *
     * @param text 二维码中的字
     * @param weight
     * @param height
     * @param filePath
     */
    public static void generateQRCode(String text, int weight,
                                      int height, String filePath) throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        //encode 编码后的结果    格式 BarcodeFormat.QR_CODE
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, weight, height);
        //传入String  拿到一个真正的地址
        Path path = FileSystems.getDefault().getPath(filePath);
        //矩阵变图片
        MatrixToImageWriter.writeToPath(bitMatrix,"PNG",path);
    }

    public static void main(String[] args) {
        try {
            //需要包括文件名的QRTest.png  不能只是F:\mallImage\
            generateQRCode("hello",350,350, "F:\\mallImage\\QRTest.png");
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
